package project.services;

import project.model.Room;
import project.model.RoomCategory;

/**
 * @author admin
 *
 */
public interface InventoryService {
	/**
     * Adds a room to the property.
     *
     * @param category the category the room belongs to
     */
	public void addRoomCategory(RoomCategory category);
	/**
     * Answers the room category with the given category identifier.
     *
     * @param categoryId the category ID
     *
     * @return the category
     */
	public RoomCategory getRoomCategory(int categoryId);
    /**
     * Adds a room to the system.
     *
     * @param room the room to add
     */
	public void addRoom(Room room);
    /**
     * Answers the room with the given identifier.
     *
     * @param roomId the room ID
     *
     * @return the room with the given {@code roomId}
     *
     * @throws com.packtpub.springrest.RecordNotFoundException if the room does not exist
     */
	public Room getRoomById(int roomId);

	/**
	 * Answers the rooms with the given identifier.
	 * 
	 * @param name
	 * 
	 * @return a List of rooms found by the given name
	 */
	public java.util.List<Room> getRoomByName(String name);
    /**
     * Answers all rooms in the given category.
     *
     * @param category the room category
     *
     * @return all the rooms belonging with the given category
     */
	//java.awt.List does not support generic type, so change to java.util.List
	public java.util.List<Room> getAllRoomWithCategory(RoomCategory category);
	
	/**
	 * Save the changes.
	 */
	public void save();
	
}
